'\" te
.\" Copyright (c) 2012, Joyent, Inc.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH LXPROC 4FS "April 25, 2012"
.SH NAME
lxproc \- a loosely Linux-compatible /proc
.SH SYNOPSIS
.LP
.nf
\fB\fR\fBmount\fR (\fB\fR\fI"lxproc"\fR, \fB\fR\fIdirectory\fR, \fB\fR\fIMS_DATA\fR, \fB\fR\fI"lxproc"\fR, \fB\fR\fINULL\fR, \fB\fR\fI0\fR);
.fi

.SH DESCRIPTION
.sp
.LP
\fBlxproc\fR is an implementation of the \fB/proc\fR filesystem that
loosely matches the Linux semantics of providing human-readable text files
that correspond to elements of the system.
As with both \fBproc\fR(5) and Linux \fB/proc\fR, \fBlxproc\fR makes available
a directory for every process, with each directory containing a number
of files; like Linux \fB/proc\fR but unlike \fBproc\fR(5), \fBlxproc\fR also
makes available a number of files related to system-wide information.
To ascertain the meaning and structure of the files provided via
\fBlxproc\fR, users should consult the Linux documentation.
.sp
.LP
The \fBlxproc\fR compatibility layer is
provided only as a best-effort for simple Linux \fB/proc\fR readers; it
is not intended to exactly mimic Linux semantics and nor does it attempt to
somehow fool a consumer into believing that it is operating within a Linux
environment. As such, \fBlxproc\fR should only be used by Linux-specific
programs that are willing to trade precision in understanding the
system in return for Linux compatibility.  To programmatically understand
the system precisely and in terms of its native constructs,
one should not use \fBlxproc\fR, but rather \fBproc\fR(5) or
\fBkstat\fR(3KSTAT).
To understand
a process or group of processes from either a shell script or the command line,
one should not use \fBlxproc\fR, but rather \fBproc\fR(5)-based tools like
\fBprstat\fR(8),
\fBpfiles\fR(1),
\fBpargs\fR(1),
\fBpmap\fR(1),
\fBptree\fR(1),
\fBplimit\fR(1),
\fBpflags\fR(1),
\fBpcred\fR(1),
\fBpstack\fR(1),
\fBpldd\fR(1),
\fBpsig\fR(1),
or
\fBpwdx\fR(1).
To understand system-wide constructs from either a shell script or the
command line, one should not use \fBlxproc\fR, but rather
\fBkstat\fR(3KSTAT)-based tools like
\fBkstat\fR(8),
\fBmpstat\fR(8),
\fBiostat\fR(8),
\fBnetstat\fR(8) or
\fBpsrinfo\fR(8).
.sp
.LP
Like \fB/proc\fR, \fBlxproc\fR can be mounted on any mount point, but the
preferred mount point is \fB/system/lxproc\fR; if a zone brand elects to
mount it by default, this will (or should) generally be the mount point.
.sp
.LP
\fBlxproc\fR can be mounted with the command:
.sp
.in +2
.nf
\fBmount \fR\fB-F\fR\fB lxproc lxproc \fR\fIdirectory\fR
.fi
.in -2

.SH SEE ALSO
.sp
.LP
\fBdf\fR(8),
\fBiostat\fR(8),
\fBkstat\fR(8),
\fBmpstat\fR(8),
\fBmount\fR(8),
\fBnetstat\fR(8),
\fBpargs\fR(1),
\fBpcred\fR(1),
\fBpfiles\fR(1),
\fBpflags\fR(1),
\fBpldd\fR(1),
\fBplimit\fR(1),
\fBpmap\fR(1),
\fBprstat\fR(8),
\fBpsig\fR(1),
\fBpsrinfo\fR(8),
\fBpstack\fR(1),
\fBptree\fR(1),
\fBpwdx\fR(1),
\fBmount\fR(2), \fBumount\fR(2), \fBkstat\fR(3KSTAT), \fBproc\fR(5),
\fBkstat\fR(9S)

.SH NOTES
.sp
.LP
When choosing between offering
Linux compatibility and telling the truth, \fBlxproc\fR emphatically picks
the truth.  A particular glaring example of this is the Linux notion of
"tasks" (that is, threads), which -- due to historical misadventures on
Linux -- allocate their identifiers from the process identifier space.
(That is, each thread has in effect a pid.)  Some Linux \fB/proc\fR readers
have come to depend on this attribute, and become confused when threads
appear with proper identifiers, so \fBlxproc\fR simply opts for the pre-2.6
behavior, and does not present the tasks directory at all.

